Sensors are devices that monitor and/or detect real world conditions. Most traditional sensors operate by converting energy of one form to another. There are several categories of simple sensors delineated as a function of the energy they detect including thermal, mechanical, optical, and acoustic, among others. For example, thermometers measure temperature, barometers gauge pressure, image sensors detect light, and microphones sense sound. These and other sensors can be combined and/or processed in various manners to produce more complex sensors. For example, images sensors and microphones are combined to produce video cameras and such cameras can further be modified to perform specific tasks. Further yet, location sensors or systems such as global positioning satellite (GPS) systems can be employed in conjunction with other sensors to contextualized data with geographical location information.
Large-scale sensor network deployment is increasing rapidly. For example, camera and/or inductive loop sensor networks are being employed to monitor motor vehicle traffic, and weather sensor networks are affording live weather conditions. Such networks generate tremendous volumes of useful data that can be utilized by applications to facilitate interaction by users, among other things. For instance, an application can provide a web portal that can host data generated by hundreds of sensors and enable users to query live data.
One emerging category of applications overlays sensor and other information on top of a map. Further, this data can be aggregated at multiple levels of granularity or resolution. This allows users to zoom in and out to obtain more or less detailed data from a geographic area of interest. For example, a user can acquire real-time data from a local camera, traffic sensor, or weather station.
Coupling data collection with query process presents a few challenges. First, collecting data from sensors on demand is expensive in terms of latency and bandwidth, especially when the query involves a large number of sensors. Second, sensors are largely heterogeneous in terms of their availability. Some sensors can be probed for data almost anytime and some others can only be probed when they are connected, working properly and have resources to sense and communicate. Furthermore, dynamically aggregating sensor data at various levels of resolution is computation intensive resulting in high end-to-end latency.